function [Result] = Ddavid_MLR_GL(AllDataTraining, AllDataTesting, SampledTrueLabelTraining, TrueLabelTesting, C, eta)

N = size(AllDataTraining, 1);

d = Ddavid_chi2_d(AllDataTraining, AllDataTraining);
Sigma = sum(sum(d, 1), 2) / (N * (N - 1) / 2);
kernel_training = Ddavid_exp_chi2(AllDataTraining, AllDataTraining, Sigma);
kernel_testing = Ddavid_exp_chi2(AllDataTraining, AllDataTesting, Sigma);

[alphas, it_time] = bucak_cvpr11(kernel_training, SampledTrueLabelTraining, C, eta, false);
[Result.Score] = calc_func_output(SampledTrueLabelTraining, alphas, kernel_testing);

Result.Pre = Result.Score;
Result.Pre(Result.Pre > 0) = 1;
Result.Pre(Result.Pre <= 0) = -1;

Result.HammingLoss = Hamming_loss(Result.Pre', TrueLabelTesting');
Result.RankingLoss = Ranking_loss(Result.Pre', TrueLabelTesting');
Result.OneError = One_error(Result.Pre', TrueLabelTesting');
Result.Coverage = coverage(Result.Pre', TrueLabelTesting');
Result.Average_Precision = Average_precision(Result.Pre', TrueLabelTesting');
